//ṵ̀10Ԫļֱ£
      //1.checkuser.pas
unit checkuser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DB, ADODB;

type
  TCheckUserForm = class(TForm)
    ADOConnection1: TADOConnection;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Edit2: TEdit;
    procedure FormActivate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CheckUserForm: TCheckUserForm;

  i:integer;



implementation
 uses main;

{$R *.dfm}

procedure TCheckUserForm.FormActivate(Sender: TObject);
begin
    i:=3;
    edit1.text:='';
    edit2.Text:='';
    edit1.SetFocus;
end;

procedure TCheckUserForm.BitBtn1Click(Sender: TObject);

    var
  Adodataset1:TAdoDataset;
begin
  AdoDataSet1:=TAdoDataset.Create(self);
  adoDataset1.Connection:=adoconnection1;
  adodataset1.CommandType:=cmdtext;
  Adodataset1.CommandText:='select * from admtable where username1=:username and password1=:password';
  adodataset1.close;
  Adodataset1.Parameters.Clear;
  Adodataset1.Parameters.AddParameter;
  adodataset1.Parameters[0].name:='username';
  adodataset1.Parameters[0].DataType:=ftstring;
  Adodataset1.Parameters[0].Direction:=pdinput;
  adodataset1.Parameters[0].Value:=edit1.text;
  Adodataset1.Parameters.AddParameter;
  adodataset1.Parameters[1].name:='password';
  adodataset1.Parameters[1].DataType:=ftstring;
  Adodataset1.Parameters[1].Direction:=pdinput;
  adodataset1.Parameters[1].Value:=edit2.text;
  adodataset1.active:=true;
  if adodataset1.Recordset.RecordCount=1 then
  begin
      username:=edit1.Text;
      qx[1]:=adodataset1.FieldByName('quanxian1').asboolean;
      qx[2]:=adodataset1.FieldByName('quanxian2').asboolean;
      close;
  end
  else
  begin
      Application.MessageBox('û飡','ʾϢ',mb_ok);
      i:=i-1;
      edit1.text:='';
      edit2.text:='';
      edit1.SetFocus;
  end;
  if i=0 then
  begin
      username:='';
      close;
  end;
  adodataset1.Active:=false; 
end;



procedure TCheckUserForm.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

end.
      //2.ChengjiChaxun.pas

unit ChengjiChaxun;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;
  //QExport3, QExport3XLS;

type
  TChengjiChaxunForm = class(TForm)
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    ADODataSet2: TADODataSet;
    DataSource2: TDataSource;
    Button2: TButton;
    procedure ComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ChengjiChaxunForm: TChengjiChaxunForm;

implementation

{$R *.dfm}

procedure TChengjiChaxunForm.ComboBox1Change(Sender: TObject);
begin
      ComboBox2.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct coutable.name from coutable,restable where restable.classname=:s0 and restable.courseno=coutable.courseno' ;
      ADODataSet1.Parameters.clear;
      adodataset1.Parameters.AddParameter;
      adodataset1.Parameters[0].Name:='s0';
      adodataset1.Parameters[0].DataType:=ftstring;
      adodataset1.Parameters[0].Direction:=pdinput;
      adodataset1.Parameters[0].Value:= ComboBox1.Text;
      adodataset1.Open;
        while not adodataset1.Eof do
        begin
           ComboBox2.Items.Add(adodataset1.Fields[0].AsString);
           adodataset1.Next;
        end;

end;

procedure TChengjiChaxunForm.Button1Click(Sender: TObject);


begin

    adodataset2.Close;
    adodataset2.CommandType:=cmdtext;
    adodataset2.commandtext:='select * from restable where classname=:classname1 and coursename=:coursename1';
    ADODataSet2.Parameters.clear;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[0].Name:='classname1';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:= ComboBox1.Text;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[1].Name:='coursename1';
    adodataset2.Parameters[1].DataType:=ftstring;
    adodataset2.Parameters[1].Direction:=pdinput;
    adodataset2.Parameters[1].Value:= ComboBox2.Text;
    adodataset2.Open;
end;

procedure TChengjiChaxunForm.FormActivate(Sender: TObject);
begin
      ComboBox1.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct clatable.name from clatable' ;
      adodataset1.Open;
        while not adodataset1.Eof do
        begin
           ComboBox1.Items.Add(adodataset1.Fields[0].AsString);
           adodataset1.Next;
        end;
end;

procedure TChengjiChaxunForm.Button2Click(Sender: TObject);
begin
close;
end;

procedure TChengjiChaxunForm.Button3Click(Sender: TObject);
begin
//QExport3XLS1.Execute;
end;

end.
      //3. ChengjiGeren.pas
  unit ChengjiGeren;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ExtCtrls, DBCtrls, Grids, DBGrids, ADODB, RpRave,
  RpDefine, RpCon, RpConDS,  //QExport3,
  //QExport3XLS,
  OleCtrls,
  //grproLib_TLB,
   OleServer;
  //QExport, QExportXLS, QExportDialog,
type
  TChengjiGerenForm = class(TForm)
    ComboBox1: TComboBox;
    Label1: TLabel;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Button1: TButton;
    ADODataSet3: TADODataSet;
    DataSource3: TDataSource;
    DBNavigator2: TDBNavigator;
    DBGrid2: TDBGrid;
    Button2: TButton;
    RvDataSetConnection1: TRvDataSetConnection;
    RvProject1: TRvProject;
    Button4: TButton;
    ADODataSet4: TADODataSet;
    RvDataSetConnection2: TRvDataSetConnection;
    procedure FormActivate(Sender: TObject);
   // procedure ComboBox1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ADODataSet2AfterScroll(DataSet: TDataSet);
    procedure Button2Click(Sender: TObject);
  //  procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
   
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ChengjiGerenForm: TChengjiGerenForm;

implementation
   uses GerenBaobiao;
{$R *.dfm}

procedure TChengjiGerenForm.FormActivate(Sender: TObject);
begin
      ComboBox1.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct clatable.name from clatable' ;
      adodataset1.Open;
        while not adodataset1.Eof do
        begin
           ComboBox1.Items.Add(adodataset1.Fields[0].AsString);
           adodataset1.Next;
        end;
end;

{procedure TChengjiGerenForm.ComboBox1Change(Sender: TObject);
begin
      //ComboBox2.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct restable.time from restable where restable.classname=:s0 ' ;
      ADODataSet1.Parameters.clear;
      adodataset1.Parameters.AddParameter;
      adodataset1.Parameters[0].Name:='s0';
      adodataset1.Parameters[0].DataType:=ftstring;
      adodataset1.Parameters[0].Direction:=pdinput;
      adodataset1.Parameters[0].Value:= ComboBox1.Text;
      adodataset1.Open;
       // while not adodataset1.Eof do
        //begin
         //  ComboBox2.Items.Add(adodataset1.Fields[0].AsString);
         //  adodataset1.Next;
       // end;
end;         }

procedure TChengjiGerenForm.Button1Click(Sender: TObject);
begin
    adodataset2.Close;
    adodataset2.CommandType:=cmdtext;
    adodataset2.commandtext:='select distinct studentno,studentname from restable where classname=:classname1 ';
    ADODataSet2.Parameters.clear;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[0].Name:='classname1';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:= ComboBox1.Text;

    adodataset2.Open;
end;

procedure TChengjiGerenForm.ADODataSet2AfterScroll(DataSet: TDataSet);
begin
    adodataset3.Close;
    adodataset3.CommandType:=cmdtext;
    adodataset3.commandtext:='select * from restable where studentno='''+adodataset2.Fields[0].AsString+'''order by time1 asc';
    adodataset3.Open;
    //label3.caption:= adodataset2.Fields[1].AsString;

    adodataset4.Close;
    adodataset4.CommandType:=cmdtext;
    adodataset4.commandtext:='select * from stutable where studentno='''+adodataset2.Fields[0].AsString+'''';
    adodataset4.Open;

end;

procedure TChengjiGerenForm.Button2Click(Sender: TObject);
begin
 close;
end;



{procedure TChengjiGerenForm.Button3Click(Sender: TObject);

var
   i,j:integer;
   tempstring:string;
   stringlist:tstringlist;

begin
  stringlist:=tstringlist.Create;
  tempstring:='|';
  adodataset3.First;
  while not adodataset3.Eof do
  begin
    for i:=0 to adodataset3.RecordCount-1 do
    begin
      for j:=0 to adodataset3.FieldCount-1 do
        begin
          tempstring:= tempstring+ adodataset3.Fields[j].AsString+'|';
        end;
      stringlist.Add(tempstring);
      tempstring:='|';
      adodataset3.Next;
    end;
  end;
  with SaveDialog1 do
  begin
    SaveDialog1.Execute;
    SaveDialog1.DefaultExt:='*.txt';
    SaveDialog1.Filter:='ıļ|*.txt';
    stringlist.SaveToFile(SaveDialog1.FileName);
  end;
  stringlist.Clear;
  tempstring:='';
end; }

procedure TChengjiGerenForm.Button4Click(Sender: TObject);
begin
  RvProject1.Execute;
end;

procedure TChengjiGerenForm.Button5Click(Sender: TObject);
begin
//  adodataset3.Active:=true;
  //QExportXLS1.Sheets[0].LoadFromQExportXLS;
  //QExport3XLS1.Execute;
end;



end.

      //4. KechengChaxun.pas
 unit KechengChaxun;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, DB, ADODB, Grids, DBGrids, StdCtrls;
 // QExport3, QExport3XLS;

type
  TKechengChaxunForm = class(TForm)
    ComboBox1: TComboBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    ComboBox2: TComboBox;
    Button1: TButton;
    ADOConnection1: TADOConnection;
    DBGrid1: TDBGrid;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    ADODataSet3: TADODataSet;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    DBNavigator1: TDBNavigator;
    DBGrid2: TDBGrid;
    Button2: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ADODataSet2AfterScroll(DataSet: TDataSet);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  KechengChaxunForm: TKechengChaxunForm;

implementation

{$R *.dfm}

procedure TKechengChaxunForm.FormActivate(Sender: TObject);
begin
      ComboBox1.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct clatable.name from clatable' ;
      adodataset1.Open;
        while not adodataset1.Eof do
        begin
           ComboBox1.Items.Add(adodataset1.Fields[0].AsString);
           adodataset1.Next;
        end;
      ComboBox2.Items.Clear;
      ADODataSet1.Close;
      ADODataSet1.CommandType:=cmdtext;
      ADODataSet1.CommandText:='select distinct coutable.name from coutable' ;
      adodataset1.Open;
        while not adodataset1.Eof do
        begin
           ComboBox2.Items.Add(adodataset1.Fields[0].AsString);
           adodataset1.Next;
        end;

end;

procedure TKechengChaxunForm.Button1Click(Sender: TObject);
begin

    adodataset2.Close;
    adodataset2.CommandType:=cmdtext;
    if (CheckBox1.Checked=true) and (CheckBox2.Checked=false) then
    adodataset2.commandtext:='select * from coutable where classname=:classname1 ';
    //if (CheckBox1.Checked=false) and CheckBox2.Checked then
    //adodataset2.commandtext:='select name from coutable where name=:name1';
    if (CheckBox1.Checked=true) and (CheckBox2.Checked=true) then
    adodataset2.commandtext:='select * from coutable where classname=:classname1 and name=:name1 ';
    if (CheckBox1.Checked=false) and (CheckBox2.Checked=false) then
    adodataset2.commandtext:='select * from coutable ';
    ADODataSet2.Parameters.clear;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[0].Name:='classname1';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:= ComboBox1.Text;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[1].Name:='name1';
    adodataset2.Parameters[1].DataType:=ftstring;
    adodataset2.Parameters[1].Direction:=pdinput;
    adodataset2.Parameters[1].Value:= ComboBox2.Text;
    if (CheckBox1.Checked=false) and CheckBox2.Checked then
    begin
    adodataset2.commandtext:='select * from coutable where name=:name2';
    ADODataSet2.Parameters.clear;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[0].Name:='name2';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:= ComboBox2.Text;
    end;
    adodataset2.Open;
end;

procedure TKechengChaxunForm.ADODataSet2AfterScroll(DataSet: TDataSet);
begin
    adodataset3.Close;
    adodataset3.CommandType:=cmdtext;
    adodataset3.commandtext:='select * from teatable where teatable.teacherno='''+adodataset2.Fields[9].AsString+'''';
    adodataset3.Open;
end;

procedure TKechengChaxunForm.Button2Click(Sender: TObject);
begin
close;
end;

procedure TKechengChaxunForm.Button3Click(Sender: TObject);
begin
//QExport3XLS1.Execute;
end;

end.
      //5. main.pas

unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ToolWin, ComCtrls, Menus;

type
  TMainForm = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    ToolBar1: TToolBar;
    N18: TMenuItem;
  //  procedure FormCreate(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
 
    //procedure N16Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  username:string;
  qx:array[1..2] of boolean;

implementation

uses checkuser, StudentBrower1, StudentXiugai, Studentgeren, ChengjiCha,
  ChengjiChaxun, ChengjiGeren, KechengChaxun, StudentChaxun, Teacher;

{$R *.dfm}

procedure TMainForm.N4Click(Sender: TObject);
begin
  Close;
end;

procedure TMainForm.FormActivate(Sender: TObject);
begin
CheckUserForm.ShowModal();
    if username<>'' then
    begin
        if qx[1] then
        begin
          N2.Enabled:=true;
          N3.Enabled:=true;

        end
        else
        begin
          N2.Enabled:=false;
          N3.Enabled:=false;

        end;
        if qx[2] then
        begin
          N6.Enabled:=true;
          N7.Enabled:=true;
          N9.Enabled:=true;
          //N10.Enabled:=true;
          N12.Enabled:=true;
          //N13.Enabled:=true;
          N15.Enabled:=true;
          //N16.Enabled:=true;
          //N17.Enabled:=true;
          N18.Enabled:=true;

        end
        else
        begin
          N6.Enabled:=false;
          N7.Enabled:=false;
          N9.Enabled:=false;
         // N10.Enabled:=false;
          N12.Enabled:=false;
          //N13.Enabled:=false;
          N15.Enabled:=false;
          //N16.Enabled:=false;
         // N17.Enabled:=false;
          N18.Enabled:=false;
        end;
    end
    else
        close;

end;

procedure TMainForm.N6Click(Sender: TObject);
begin
 StudentChaxunForm.ShowModal();

end;

procedure TMainForm.N7Click(Sender: TObject);
begin
 StudentXiugaiForm.ShowModal();
end;


procedure TMainForm.N18Click(Sender: TObject);
begin
     ChengjiGerenForm.ShowModal();
end;


procedure TMainForm.N15Click(Sender: TObject);
begin
     ChengjiChaxunForm.ShowModal();
end;


procedure TMainForm.N12Click(Sender: TObject);
begin
    KechengChaxunForm.ShowModal();
end;



procedure TMainForm.N9Click(Sender: TObject);
begin
    TeacherForm.ShowModal();
end;



end.
      //6. StudentBrower1.pas

unit StudentBrower1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DBCtrls;

type
  TStudentBrower1Form = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADODataSet1: TADODataSet;
    Button2: TButton;
    BitBtn1: TBitBtn;
    SaveDialog1: TSaveDialog;
    DBNavigator1: TDBNavigator;
    Button3: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    //procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  StudentBrower1Form: TStudentBrower1Form;

implementation
  
{$R *.dfm}

procedure TStudentBrower1Form.FormActivate(Sender: TObject);

begin
    radiobutton1.Checked:=true;
    edit1.text:='';

    dbgrid1.DataSource:=datasource1;
    datasource1.DataSet:=adodataset1;
    adodataset1.Connection:=adoconnection1;

end;

procedure TStudentBrower1Form.Button1Click(Sender: TObject);
begin
    adodataset1.Close;
    adodataset1.CommandType:=cmdtext;
    if edit1.text='' then
        adodataset1.commandtext:='select * from stutable'
    else if radiobutton1.Checked then
        adodataset1.commandtext:='select * from stutable where type=:s0'
    else if radiobutton2.Checked then
        adodataset1.commandtext:='select * from stutable where name1=:s0';

    if edit1.text<>'' then
    begin
        adodataset1.Parameters.Clear;
        adodataset1.Parameters.AddParameter;
        adodataset1.Parameters[0].name:='s0';
        adodataset1.Parameters[0].datatype:=ftstring;
        adodataset1.Parameters[0].Direction:=pdinput;
        adodataset1.Parameters[0].Value:=edit1.text;
    end;
    adodataset1.Open;
    
   
end;


procedure TStudentBrower1Form.Button2Click(Sender: TObject);
begin
   Close;
end;



procedure TStudentBrower1Form.BitBtn1Click(Sender: TObject);
var
   i,j:integer;
   tempstring:string;
   stringlist:tstringlist;

begin
  stringlist:=tstringlist.Create;
  tempstring:='|';
  adodataset1.First;
  while not adodataset1.Eof do
  begin
    for i:=0 to adodataset1.RecordCount-1 do
    begin
      for j:=0 to adodataset1.FieldCount-1 do
        begin
          tempstring:= tempstring+ adodataset1.Fields[j].AsString+'|';
        end;
      stringlist.Add(tempstring);
      tempstring:='|';
      adodataset1.Next;
    end;
  end;
  with SaveDialog1 do
  begin
    SaveDialog1.Execute;
    SaveDialog1.DefaultExt:='*.txt';
    SaveDialog1.Filter:='ıļ|*.txt';
    stringlist.SaveToFile(SaveDialog1.FileName);
  end;
  stringlist.Clear;
  tempstring:='';
end;

procedure TStudentBrower1Form.Button3Click(Sender: TObject);
begin
//QExportXLS1.Execute;
end;

end.
      //7. StudentChaxun.pas

unit StudentChaxun;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls;
  //QExport3, QExport3XLS;

type
  TStudentChaxunForm = class(TForm)
    ComboBox1: TComboBox;
    CheckBox2: TCheckBox;
    ComboBox2: TComboBox;
    CheckBox1: TCheckBox;
    Button1: TButton;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button3: TButton;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    DataSource1: TDataSource;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  StudentChaxunForm: TStudentChaxunForm;

implementation

{$R *.dfm}

procedure TStudentChaxunForm.FormActivate(Sender: TObject);
begin
      ComboBox1.Items.Clear;
      ADODataSet2.Close;
      ADODataSet2.CommandType:=cmdtext;
      ADODataSet2.CommandText:='select distinct clatable.name from clatable' ;
      adodataset2.Open;
        while not adodataset2.Eof do
        begin
           ComboBox1.Items.Add(adodataset2.Fields[0].AsString);
           adodataset2.Next;
        end;
end;

procedure TStudentChaxunForm.Button1Click(Sender: TObject);
begin
    adodataset1.Close;
    adodataset1.CommandType:=cmdtext;
    if (CheckBox1.Checked=true) and (CheckBox2.Checked=false) then
    adodataset1.commandtext:='select * from stutable,clatable where clatable.name=:classname1 and stutable.classno=clatable.classno ';

    if (CheckBox1.Checked=true) and (CheckBox2.Checked=true) then
    adodataset1.commandtext:='select * from stutable,clatable where clatable.name=:classname1 and stutable.classno=clatable.classno and stutable.name1=:name3';
    if (CheckBox1.Checked=false) and (CheckBox2.Checked=false) then
    adodataset1.commandtext:='select * from stutable ';
    ADODataSet1.Parameters.clear;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[0].Name:='classname1';
    adodataset1.Parameters[0].DataType:=ftstring;
    adodataset1.Parameters[0].Direction:=pdinput;
    adodataset1.Parameters[0].Value:= ComboBox1.Text;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[1].Name:='name3';
    adodataset1.Parameters[1].DataType:=ftstring;
    adodataset1.Parameters[1].Direction:=pdinput;
    adodataset1.Parameters[1].Value:= ComboBox2.Text;
    if (CheckBox1.Checked=false) and CheckBox2.Checked then
    begin
    adodataset1.commandtext:='select * from stutable where name1=:name4';
    ADODataSet1.Parameters.clear;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[0].Name:='name4';
    adodataset1.Parameters[0].DataType:=ftstring;
    adodataset1.Parameters[0].Direction:=pdinput;
    adodataset1.Parameters[0].Value:= ComboBox2.Text;
    end;
    adodataset1.Open;
end;

procedure TStudentChaxunForm.Button3Click(Sender: TObject);
begin
close;
end;

procedure TStudentChaxunForm.Button2Click(Sender: TObject);
begin
//QExport3XLS1.Execute;
end;

end.

      //8. tudentgeren.pas

unit Studentgeren;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, DBTables, DB, Grids, DBGrids, ExtCtrls;

type
  TStudentGerenForm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Table1: TTable;
    Query1: TQuery;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DataSource3: TDataSource;
    Table2: TTable;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  StudentGerenForm: TStudentGerenForm;

implementation

{$R *.dfm}

procedure TStudentGerenForm.FormShow(Sender: TObject);
begin
  Table1.Open;
  Table2.Open;
  Query1.Open;
end;

end.
      //9. StudentXiugai.pas

unit StudentXiugai;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Mask, DB, ADODB, Grids, DBGrids, ExtCtrls,
  DBCtrls;

type
  TStudentXiugaiForm = class(TForm)
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit7: TEdit;
    Label8: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit10: TEdit;
    MaskEdit1: TMaskEdit;
    Label11: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    DBNavigator1: TDBNavigator;
    //procedure FormCreate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ADOTable1AfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure initiate;
    procedure SaveToTable;
    procedure LoadFromTable;
  end;

var
  StudentXiugaiForm: TStudentXiugaiForm;
  new_record:boolean;

implementation
  uses main;
{$R *.dfm}

procedure TStudentXiugaiForm.initiate;
begin
    edit1.Text:='';
    edit2.Text:='';
    edit3.Text:='';
    ComboBox1.Text:='';
    ComboBox2.Text:='';
    ComboBox3.Text:='';
    edit7.Text:='';
    edit8.text:='';
    //ComboBox4.text:='?';
    edit10.text:='';
    maskedit1.text:=Datetostr(date());
    edit1.SetFocus;    
end;

procedure TStudentXiugaiForm.SaveToTable;
begin
    adotable1.edit;
    adotable1.FieldByName('studentno').asstring:=edit1.text;
    adotable1.FieldByName('name1').AsString:=edit2.text;
    adotable1.FieldByName('name2').AsString:=edit3.text;
    adotable1.FieldByName('sex').asstring:=ComboBox1.text;
    adotable1.fieldbyname('country').asstring:=ComboBox2.text;
    adotable1.FieldByName('type').asstring:=ComboBox3.text;
    adotable1.FieldByName('dorm').asstring:=edit7.text;
    adotable1.FieldByName('tel1').asstring:=edit8.text;
    //adotable1.FieldByName('monitor').asstring:=ComboBox4.text;
    adotable1.FieldByName('classno').asstring:=edit10.text;
    adotable1.FieldByName('intime').asdatetime:=StrToDate(maskedit1.text);
    adotable1.Post;
end;

procedure TStudentXiugaiForm.LoadFromTable;
begin
    edit1.text:=adotable1.FieldByName('studentno').asstring;
    edit2.text:=adotable1.FieldByName('name1').asstring;
    edit3.text:=adotable1.FieldByName('name2').AsString;
    ComboBox1.text:=adotable1.FieldByName('sex').asstring;
    ComboBox2.Text:=adotable1.fieldbyname('country').asstring;
    ComboBox3.text:=adotable1.FieldByName('type').asstring;
    edit7.Text:=adotable1.FieldByName('dorm').asstring;
    edit8.Text:=adotable1.FieldByName('tel1').asstring;
    //ComboBox4.Text:=adotable1.FieldByName('monitor').asstring;
    edit10.Text:=adotable1.FieldByName('classno').asstring;
    maskedit1.text:=DatetoStr(adotable1.FieldByName('intime').asdatetime);
end;


procedure TStudentXiugaiForm.Edit1Exit(Sender: TObject);
var
 adodataset1:TAdoDataset;
begin
 if edit1.text<>'' then
    begin
        adodataset1:=TAdoDataset.Create(self);
        adodataset1.Connection:=adoconnection1;
        adodataset1.Close;
        adodataset1.CommandType:=cmdText;
        adodataset1.CommandText:='select * from stutable where studentno=:studentno1';
        adodataset1.Parameters.clear;
        adodataset1.Parameters.AddParameter;
        adodataset1.Parameters[0].Name:='studentno1';
        adodataset1.Parameters[0].DataType:=ftstring;
        adodataset1.Parameters[0].Direction:=pdinput;
        adodataset1.Parameters[0].Value:=edit1.text;
        adodataset1.active:=true;
        if new_record then
        begin
            if adodataset1.Recordset.RecordCount=1 then
            begin
                application.MessageBox('ѧŴ!','ʾϢ',mb_ok);
                edit1.SetFocus;
            end
        end;
        adodataset1.close;
    end;


end;

procedure TStudentXiugaiForm.FormActivate(Sender: TObject);
begin
    dbgrid1.DataSource:=datasource1;
    datasource1.DataSet:=adotable1;
    adotable1.Connection:=adoconnection1;
    adotable1.tablename:='stutable';
    adotable1.active:=true;
    initiate;
    new_record:=false;
    if adotable1.Eof then
        bitbtn2.Enabled:=false
    else
        loadfromtable;

end;

procedure TStudentXiugaiForm.BitBtn3Click(Sender: TObject);
begin
 if new_record then
    begin
      adotable1.Append;

      new_record:=false;
    end;
    savetotable;
    if adotable1.Recordset.RecordCount>0 then
          bitbtn2.Enabled:=true;

end;

procedure TStudentXiugaiForm.BitBtn4Click(Sender: TObject);
begin
  close;
end;

procedure TStudentXiugaiForm.BitBtn2Click(Sender: TObject);
begin
  adotable1.Delete;
  adotable1.first;
end;

procedure TStudentXiugaiForm.BitBtn1Click(Sender: TObject);
begin
 initiate;
 new_record:=true;
end;

procedure TStudentXiugaiForm.ADOTable1AfterScroll(DataSet: TDataSet);
begin
      IF NOT NEW_RECORD THEN
        loadfromtable;
      

end;

end.
      //10. Teacher.pas
unit Teacher;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;
 // QExport3, QExport3XLS;

type
  TTeacherForm = class(TForm)
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DBGrid2: TDBGrid;
    DBNavigator2: TDBNavigator;
    DataSource2: TDataSource;
    Button3: TButton;
    procedure FormActivate(Sender: TObject);
    procedure ADODataSet1AfterScroll(DataSet: TDataSet);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TeacherForm: TTeacherForm;

implementation

{$R *.dfm}

procedure TTeacherForm.FormActivate(Sender: TObject);
begin
    adodataset1.Close;
    adodataset1.CommandType:=cmdtext;
    adodataset1.commandtext:='select * from teatable ';
    adodataset1.Open;
end;

procedure TTeacherForm.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
    adodataset2.Close;
    adodataset2.CommandType:=cmdtext;
    adodataset2.commandtext:='select * from coutable where teacherno='''+adodataset1.Fields[1].AsString+'''';
    adodataset2.Open;
end;

procedure TTeacherForm.Button3Click(Sender: TObject);
begin
close;
end;

procedure TTeacherForm.Button1Click(Sender: TObject);
begin
//QExport3XLS1.Execute;
end;

procedure TTeacherForm.Button2Click(Sender: TObject);
begin
//QExport3XLS2.Execute;
end;

end.
 